package com.ctcemti.mdm.project.sys.service;

import com.ctcemti.mdm.common.exception.InvalidParamException;
import com.ctcemti.mdm.project.sys.entity.ResMaterialLibrary;
import com.github.pagehelper.PageInfo;
import org.springframework.web.multipart.MultipartFile;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.sql.SQLException;
import java.util.List;
import java.util.Map;

/**
 * @ClassName IResMaterialLibraryService
 * @Description 物资目录库逻辑层接口
 * @Author bxf
 * @Date 11:19 2019/10/28
 * @Version V1.0
 **/
public interface IResMaterialLibraryService {
    /**
     * @Author bxf
     * @Description 根据主键删除
     * @Date 11:38 2019/10/28
     * @Param
     * @return
     **/
    int deleteByPrimaryKey(Integer id);
    /**
     * @Author bxf
     * @Description 插入数据字典字典分类表
     * @Date 11:39 2019/10/28
     * @Param
     * @return
     **/
    int insert(ResMaterialLibrary record);

    /**
     * @Author bxf
     * @Description 选择性字段插入
     * @Date 8:05 2019/10/28
     * @Param 
     * @return 
     **/
    int insertSelective(ResMaterialLibrary record);
    /**
     * @Author bxf
     * @Description 根据主键获取
     * @Date 8:05 2019/10/28
     * @Param
     * @return
     **/
    ResMaterialLibrary selectByPrimaryKey(Integer id);
    /**
     * @Author bxf
     * @Description
     * @Date 11:41 2019/10/28
     * @Param 根据主键选择性字段更新对象
     * @return
     **/
    int updateByIdSelective(ResMaterialLibrary ResMaterialLibrary);
    /**
     * @Author bxf
     * @Description
     * @Date 11:47 2019/10/28
     * @Param 根据主键更新对象
     * @return
     **/
    int updateByPrimaryKey(ResMaterialLibrary record);

    /**
     * @Author bxf
     * @Description 获取所有数据字典字典分类表子目
     * @Date 10:55 2019/7/15
     * @Param
     * @return
     **/
    public List<ResMaterialLibrary> selectAllResMaterialLibrary();

    /**
     * @Author bxf
     * @Description 根据父id获取对象list
     * @Date 16:18 2019/10/28
     * @Param
     * @return
     **/
    public List<ResMaterialLibrary> selectByPid(String s);

    /**
     * @Author bxf
     * @Description 根据实体中的属性值进行查询，查询条件使用等号
     * @Date 15:19 2019/10/28
     * @Param
     * @return
     **/
    public List<ResMaterialLibrary> selectResMaterialLibrary(ResMaterialLibrary ResMaterialLibrary);

    /**
     * @Author bxf
     * @Description 根据主键删除
     * @Date 11:38 2019/10/28
     * @Param
     * @return
     **/
    int deleteByPrimaryKeys(String ids);
    /**
     * @Author bxf
     * @Description 根据id分页获取数据
     * @Date 8:04 2019/10/28
     * @Param
     * @return
     **/
    PageInfo<ResMaterialLibrary> selectListByPid(ResMaterialLibrary ResMaterialLibrary);

    Map<String, Object> uploadFile(MultipartFile multipartFile, String category, HttpServletResponse response, HttpServletRequest request) throws SQLException, IOException, InvalidParamException;
}